/* 
 * File:   ZipCompressor.h
 * Author: enriqueantezana
 *
 * Created on 12 de junio de 2013, 15:18
 */

#ifndef ZIPBUILD_H
#define	ZIPBUILD_H
#include "FileHeader.h"
#include "CentralDirectory.h"
#include "EndOfCentralDirectory.h"
#include "PathBuilder.h"
#include <vector>

class ZipBuilder
{
    friend class ZipCompressor;
    
public:
    ZipBuilder();
    ~ZipBuilder();
    std::vector<FileHeader*> assembleCompressedZipFile(std::vector<FilePathData> pathsList);
    FileHeader* buildFileHeaderStructure(FilePathData filePathData);
    void buildEndOfCentralDirectory();
    
private:
    std::vector<FileHeader*> fileHeadersList_;
    EndOfCentralDirectory* endOfCentralDirectory_;
};


#endif	/* ZIPBUILDER_H */

